Mike Dai

319 经验值

其实说穿了,就是全局方法,一般用在一些自定义的Helper function,比如Laravel的Facade,再说得直观一些,前端开发过程中,比如bootstrap就是一群这个helper (col-md-10, row, img-responsive,...) 这些静态方法的存大仅仅是一种快速得到一些结果而存在的?我的理解正确吗?

jelly:
我在研究OctoberCms时发现了这个应用场景,请先看下视频
https://octobercms.com/support/article/ob-10
作者意图扩展User这个Plugin时,不是简单的改写Plugin而是通过 extend方法,在boot里面设置好关系, 然后,在用户自己定义的Plugin里面写一些扩展Model的。。。当视频 播放到7分钟时,我看到static的应用场景。

因为这个在生活中很常见,而且laravel5.2自带的注册验证功能很容易生成,只需要加入短信验证方法,而我最近看到这个https://github.com/toplan/laravel-sms,也是基于laravel的,能否演示一下给我们看看,谢谢!

我想具体结合一些场景实现来深入学习laravel,不知可否,我觉得这个应该会很火,最好和这个easywechat SDK一起讲解,谢谢,

可惜英文不好,能帮忙
https://mattstauffer.co/blog/the-auth-scaffold-in-laravel-5-2
Route::auth() #
The auth() method is a shortcut to defining the following routes:

// Authentication Routes...
$this->get('login', 'Auth\AuthController@showLoginForm');
$this->post('login', 'Auth\AuthController@login');
$this->get('logout', 'Auth\AuthController@logout');

// Registration Routes...
$this->get('register', 'Auth\AuthController@showRegistrationForm');
$this->post('register', 'Auth\AuthController@register');

// Password Reset Routes...
$this->get('password/reset/{token?}', 'Auth\PasswordController@showResetForm');
$this->post('password/email', 'Auth\PasswordController@sendResetLinkEmail');
$this->post('password/reset', 'Auth\PasswordController@reset');

Jelly,
我看了一整天的视频,感觉还是很模糊,或者说映像不深,不过,我当我看了oop的视频后,我好像有了一点启发,我还是想和你确认一下我的理解没有错误。

所谓对象化编程,就是要求我们无论在处理任何情况的时候,都不要单单只考虑一方面应用场景。

比如我这个案例中,我虽然只是很简单的要给注册环节加上用户的微信openid,

我们可以很简单的找到这个文件的controller,加上openid,也可以写一个service provider, 也可以是一个middleware, 也可以写一个event, 就完全取决于我们是怎么看待这个需求。从什么角度看这个需求就会有不同的写法。

是不是这样?办法有很多种,但是科学的办法或者说便于未来扩展的,往往只要几种。

我在看5.2 auth结构时发现,这个middleware,我现在已经可以成功的能获得wechat.oauth我现在想把这个$user变量传给所有的auth(),请问我可以如何做,我试过route::auth()->with('user',$user);
但是,会报错。

还有一个问题是,我如何 overrid掉auth()的一些controller,我觉得应该是继承vendor中的auth类,然后创建自己新的controller然后加入自己的新的逻辑是吗?

谢谢

Route::group(['middleware' => ['web','wechat.oauth']], function () {
  // $user = session('wechat.oauth_user');
  Route::auth();
});

Jelly 您好,
我最近在开发一个微信基于laravel的项目,我想结合这个例子来谈一些,那首先呢我找到了wechat SDK,github 地址在这:https://github.com/overtrue/laravel-wechat

那我现在的问题是这样的,因为我在网上看了一些你录制的视频,其中,有一部涉及到service provider,我仔细的研读了一翻,我能否用自己的语言来表达我对它的理解。我指针对5.2版本。 在angular中我们也用到依赖注入,在我们的controller 中往往会用到这些service. 其实laravel也是这样,可能还存在一些我不知道的mvc框架也同样如法袍制。

回到开头,当我装好wechat的sdk后,在vendor目录中呢就会有不这个项目目录,我可以把这个目录想像成为从商店买回来了一堆积木,只不过呢,这个积木要你自己去搭,composer呢就相当于快递员而以。

于是,我的疑问产生了,我虽然知道怎么使用这个sdk了,但是呢,怎么把这个搭好,搭了科学。。我是有一些洁癖的人,不喜欢乱搭建。

我的问题也主要是指对这方面的。
如果是微信项目,很多时候呢我们会用到微信的jssdk这个东西,假如我有一个webapp那么这个app呢要求在分享的时候随时可以调取。

比如说,分享的时候我们会用到jssdk的,为了让所有的view都能调取这个.
我野蛮的将它放到/Providers/AppServiceProvider.php中,结果我很满意,所有的view在被分享时,都会成功的正确调用。见附code1:

但是接下来问题来了,我在注册页面时呢,我需要用到wechatsdk中的oauth方法去从腾讯服务器上得到用户的openid,头像,然后默认传到注册页面上。

我得知laravel5.2的php artisan make:auth 可以很方便的帮助我们创建一个注册一条龙服务,我很高兴的创建了它。但,好景不长,我又开始迷茫了,我怎么找也找不到负责写入数据的controller. 在route中,你只有看到这么简简单单的一句:

Route::group(['middleware' => 'web'], function () {
    Route::auth();
    Route::get('/home', 'HomeController@index');
});

我该从何下手?如何下手?我自己觉得我应该注册一个server provider是吗?这样比较科学?我应该加强哪方面的laravel基本功..谢谢,盼复

code1:

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use EasyWeChat\Foundation\Application;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot(Application $wechat)
    {
        //
        $js = $wechat->js;

        view()->share('site_name','IRIS China board');
        view()->share('js',$js);
    }

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}